配置访问凭证

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

使用 Go SDK 发起请求访问 Tablestore,您需要配置访问凭证。阿里云服务会通过访问凭证验证您的身份信息和访问权限。您可以根据使用场景对认证和授权的要求,配置不同类型的访问凭证。

前提条件

配置访问凭证前,您需要完成安装表格存储 Go SDK 的准备工作。具体操作,请参见安装 Go SDK

访问凭证

访问凭证选型

  • 临时访问凭证:对于需要高安全性的场景,建议使用临时访问凭证。临时访问凭证可以限制访问的有效期,从而减少访问凭证泄露的风险。此外,临时访问凭证支持权限控制,可以有效地避免权限过大的问题。

  • 长期访问凭证:出于安全性考虑,不建议您使用长期访问凭证。对于需要便利性的场景,长期访问凭证可以在较长时间内免除多次刷新的麻烦。

    重要
    • 建议每三个月更换一次长期访问凭证,以提高账号的安全性。

    • 当长期访问凭证泄露或者不再使用时,应该及时删除或者禁用相关的访问凭证,以免造成安全风险。

临时访问凭证

当您准备临时使用 Go SDK 访问 Tablestore 服务时,您可以通过 STS 服务颁发一个 STS 临时访问凭证。临时访问凭证无需透露您的 RAM 用户密钥,使 Tablestore 的访问更加安全。

  1. 创建 RAM 用户。具体操作,请参见创建 RAM 用户

  2. 为 RAM 用户授予 AliyunSTSAssumeRoleAccess 权限。具体操作,请参见为 RAM 用户授权

  3. 创建 RAM 角色,并为 RAM 角色授予自定义权限策略。具体操作,请参见创建 RAM 角色为 RAM 角色授予自定义权限策略

  4. 使用 RAM 用户扮演 RAM 角色获取 STS 临时访问凭证。具体操作,请参见获取 STS 临时访问凭证

  5. 配置 STS 临时访问凭证。

    环境变量

    1. 使用临时身份凭证设置环境变量。

      Mac OS X/Linux/Unix
      export OTS_AK_ENV=<OTS_AK_ENV>
      export OTS_SK_ENV=<OTS_SK_ENV>
      export OTS_SESSION_TOKEN=<OTS_SESSION_TOKEN>
      Windows

      以管理员身份运行命令提示符,执行以下命令。

      setx OTS_AK_ENV <OTS_AK_ENV> /m
      setx OTS_SK_ENV <OTS_SK_ENV> /m
      setx OTS_SESSION_TOKEN <OTS_SESSION_TOKEN> /m
      说明

      环境变量配置完成后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE 等)或服务。

    2. 通过环境变量来传递凭证信息。

      accessKeyId := os.Getenv("OTS_AK_ENV")
      accessKeySecret := os.Getenv("OTS_SK_ENV")
      securityToken := os.Getenv("OTS_SESSION_TOKEN")

    静态凭证

    您可以在代码中使用变量来引用凭证,这些变量在运行时会被环境变量、配置文件或其他外部数据源中的实际凭证值填充。

    以下操作步骤以配置文件为例。

    1. 创建配置文件 config.ini

      [credentials]
      OTS_AK_ENV = <OTS_AK_ENV>
      OTS_SK_ENV = <OTS_SK_ENV>
      OTS_SESSION_TOKEN = <OTS_SESSION_TOKEN>
    2. 使用配置文件来传递凭证信息。

      // 读取配置文件
      config, err := ini.Load("config.ini")
      if err != nil {
          fmt.Println("无法读取配置文件:", err)
      }
      
      // 从配置文件中获取Access Key IDAccess Key Secret
      access_key_id := config.Section("credentials").Key("OTS_AK_ENV").String()
      access_key_secret := config.Section("credentials").Key("OTS_SK_ENV").String()
      security_token := config.Section("credentials").Key("OTS_SESSION_TOKEN").String()

长期访问凭证

如果您的应用程序部署运行在安全、稳定且不易受外部攻击的环境中,需要长期使用 Go SDK 访问您的 Tablestore,您可以使用阿里云账号或 RAM 用户的 AK(Access Key ID、Access Key Secret)的方式访问。如何获取 AK,请参见使用 RAM 用户密钥发起请求

警告

阿里云账号拥有资源的全部权限,AK 一旦泄露,会给系统带来巨大风险,不建议使用。推荐使用最小化授权的 RAM 用户的 AK。

环境变量

  1. 使用 AK 设置环境变量。

    Mac OS X/Linux/Unix
    export OTS_AK_ENV=<OTS_AK_ENV>
    export OTS_SK_ENV=<OTS_SK_ENV>
    Windows

    以管理员身份运行命令提示符,执行以下命令。

    setx OTS_AK_ENV <OTS_AK_ENV> /m
    setx OTS_SK_ENV <OTS_SK_ENV> /m
    说明

    环境变量配置完成后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE 等)或服务。

  2. 使用环境变量来传递凭证信息。

    accessKeyId := os.Getenv("OTS_AK_ENV")
    accessKeySecret := os.Getenv("OTS_SK_ENV")

静态凭证

您可以在代码中使用变量来引用凭证,这些变量在运行时会被环境变量、配置文件或其他外部数据源中的实际凭证值填充。以下操作步骤以配置文件为例。

  1. 创建配置文件 config.ini

    [credentials]
    OTS_AK_ENV = <OTS_AK_ENV>
    OTS_SK_ENV = <OTS_SK_ENV>
  2. 使用配置文件来传递凭证信息。

    // 读取配置文件
    config, err := ini.Load("config.ini")
    if err != nil {
        fmt.Println("无法读取配置文件:", err)
    }
    
    // 从配置文件中获取Access Key IDAccess Key Secret
    access_key_id := config.Section("credentials").Key("OTS_AK_ENV").String()
    access_key_secret := config.Section("credentials").Key("OTS_SK_ENV").String()

后续步骤

初始化凭证提供者后,您需要使用凭证提供者来创建 OTSClient 实例。详情请参见初始化 OTSClient